﻿#define _CRT_SECURE_NO_WARNINGS 1

//#include<stdio.h>
//int main()
//{
//	int m, n;
//	printf("Enter m,n;");
//	scanf("%d%d", &m, &n);
//	while (m != n) //1
//	{
//		while (m > n) m = m - n; //2
//		while (n > m) n = n - m; //3
//	}
//	printf("m=%d\n", m);
//
//	return 0;
//}









//#include <stdio.h>
//int main()
//{
//	char c;
//	int v0 = 0, v1 = 0, v2 = 0;
//	do
//	{
//		switch (c = getchar())
//		{
//			case'a':case'A':
//			case'e':case'E':
//			case'i':case'I':
//			case'o':case'O':
//			case'u':case'U':v1 += 1;
//			default:v0 += 1; v2 += 1;
//		}
//	} while (c != '\n');
//	printf("v0=%d,v1=%d,v2=%d\n", v0, v1, v2);
// 
//	return 0;
//}










//#include<stdio.h>
//int main()
//{
//	int a[] = { 4, 0, 2, 3, 1 }, i, j, t;
//	for (i = 1; i < 5; i++)
//	{
//		t = a[i];
//		j = i - 1;
//		while (j >= 0 && t < a[j])
//		{
//			a[j + 1] = a[j];
//			--j;
//		} 
//		a[j + 1] = t;
//	}
//	for (i = 0; i < 5; i++)
//	{
//		printf("%d ", a[i]);
//	}
//
//	return 0;
//}












////错误的集合:
////集合 s 包含从 1 到 n 的整数。不幸的是，因为数据错误，导致集合里面某一个数字复制了成了集合里面的另外一个数字的值，导致集合 丢失了一个数字 并且 有一个数字重复 。
////给定一个数组 nums 代表了集合 S 发生错误后的结果。
////请你找出重复出现的整数，再找到丢失的整数，将它们以数组的形式返回。
//#include<stdio.h>
//#include<string.h>
//int cmp(int* a, int* b)
//{
//    return *a - *b;
//}
//int* findErrorNums(int* nums, int numsSize, int* returnSize)
//{
//    int* ret = malloc(sizeof(int) * 2);
//    *returnSize = 2;
//    qsort(nums, numsSize, sizeof(int), cmp);
//    int lastone = 0;
//    for (int i = 0; i < numsSize; i++)
//    {
//        int cur = nums[i];
//        if (cur == lastone)
//        {
//            ret[0] = lastone;
//        }
//        else if (cur - lastone > 1)
//        {
//            ret[1] = lastone + 1;
//        }
//        lastone = cur;
//    }
//    if (nums[numsSize - 1] != numsSize)
//        ret[1] = numsSize;
//    return ret;
//}












////描述
////小明同学最近开发了一个网站，在用户注册账户的时候，需要设置账户的密码，为了加强账户的安全性，小明对密码强度有一定要求：
////1. 密码只能由大写字母，小写字母，数字构成；
////2. 密码不能以数字开头；
////3. 密码中至少出现大写字母，小写字母和数字这三种字符类型中的两种；
////4. 密码长度至少为8
////现在小明受到了n个密码，他想请你写程序判断这些密码中哪些是合适的，哪些是不合法的。
////
////输入描述：
////输入一个数n，接下来有n(n≤100)行，每行一个字符串，表示一个密码，输入保证字符串中只出现大写字母，小写字母和数字，字符串长度不超过100。
////输出描述：
////输入n行，如果密码合法，输出YES，不合法输出NO
//
//#include<stdio.h>
//#include<string.h>
//int main()
//{
//    int n = 0;
//    while (scanf("%d", &n) != EOF)
//    {
//        int upper = 0;
//        int lower = 0;
//        int num = 0;
//        char arr[1000] = { 0 };
//        scanf("%s", arr);
//        int sz = strlen(arr);
//        if (sz < 8)
//        {
//            printf("NO\n");
//        }
//        else
//        {
//            for (int i = 0; i < sz; i++)
//            {
//                if (arr[0] >= '0' && arr[0] <= '9')
//                {
//                    printf("NO\n");
//                }
//                else
//                {
//                    if (arr[i] >= 'A' && arr[i] <= 'Z')
//                        upper++;
//                    if (arr[i] >= 'a' && arr[i] <= 'z')
//                        lower++;
//                    if (arr[i] >= '0' && arr[i] <= '9')
//                        num++;
//                }
//            }
//        }
//        if (upper + lower + num >= 2)
//            printf("YES\n");
//    }
//    return 0;
//}